package itdep.common.util;

import java.util.Map;

/**
 * @author Ivan Khalopik
 * @version $Revision: 4 $ $Date: 2010-06-10 13:13:16 +0000 (Thu, 10 Jun 2010) $
 */
public abstract class StringUtils {
	private static final Map<Character, String> CHAR_MAP = CollectionUtils.arrayToMap(
			'а', "a",
			'б', "b",
			'в', "v",
			'г', "g",
			'д', "d",
			'е', "e",
			'ё', "e",
			'ж', "zh",
			'з', "z",
			'и', "i",
			'й', "y",
			'к', "k",
			'л', "l",
			'м', "m",
			'н', "n",
			'о', "o",
			'п', "p",
			'р', "r",
			'с', "s",
			'т', "t",
			'у', "u",
			'ф', "f",
			'х', "h",
			'ц', "c",
			'ч', "ch",
			'ш', "sh",
			'щ', "shch",
			'ъ', "",
			'ы', "y",
			'ь', "'",
			'э', "e",
			'ю', "u",
			'я', "ya",

			'A', "A",
			'Б', "B",
			'В', "V",
			'Г', "G",
			'Д', "D",
			'Е', "E",
			'Ё', "E",
			'Ж', "ZH",
			'З', "Z",
			'И', "I",
			'Й', "Y",
			'К', "K",
			'Л', "L",
			'М', "M",
			'Н', "N",
			'О', "O",
			'П', "P",
			'Р', "R",
			'С', "S",
			'Т', "T",
			'У', "U",
			'Ф', "F",
			'Х', "H",
			'Ц', "C",
			'Ч', "CH",
			'Ш', "SH",
			'Щ', "SHCH",
			'Ъ', "",
			'Ы', "Y",
			'Ь', "'",
			'Э', "E",
			'Ю', "U",
			'Я', "YA"
	);

	public static String translit(final String str) {
		final StringBuilder sb = new StringBuilder();
		for (char ch : str.toCharArray()) {
			if (ch >= 'a' && ch <= 'z') {
				sb.append(ch);
			} else if (CHAR_MAP.containsKey(ch)) {
				sb.append(CHAR_MAP.get(ch));
			}
		}
		return sb.toString();
	}
}
